/*
*所有关于Process类的业务代码接口应在此处编写
*/
using VOL.Core.BaseProvider;
using VOL.Entity.DomainModels;
using VOL.Core.Utilities;
using System.Linq.Expressions;
using System.Threading.Tasks;
using VOL.Domain.Dto;

namespace VOL.Domain.IServices
{
    public partial interface IProcessService
    {
        /// <summary>
        /// 分页查询工艺路线
        /// </summary>
        /// <param name="searchDto">查询条件和分页参数</param>
        /// <returns>分页数据</returns>
        Task<WebResponseContent> GetProcessPageData(ProcessSearchDto searchDto);

        /// <summary>
        /// 创建工艺路线
        /// </summary>
        /// <param name="process">工艺路线实体</param>
        /// <returns>创建结果</returns>
        Task<WebResponseContent> AddProcess(Process process);

        /// <summary>
        /// 修改工艺路线
        /// </summary>
        /// <param name="process">工艺路线实体</param>
        /// <returns>修改结果</returns>
        Task<WebResponseContent> UpdateProcess(Process process);

        /// <summary>
        /// 批量删除工艺路线
        /// </summary>
        /// <param name="ids">工艺路线ID数组</param>
        /// <returns>删除结果</returns>
        Task<WebResponseContent> BatchDeleteProcess(int[] ids);

        /// <summary>
        /// 分页查询组成工序
        /// </summary>
        /// <param name="searchDto">查询条件和分页参数</param>
        /// <returns>分页数据</returns>
        Task<WebResponseContent> GetCompositionProcessPageData(CompositionProcessSearchDto searchDto);

        /// <summary>
        /// 添加组成工序
        /// </summary>
        /// <param name="compositionProcess">组成工序实体</param>
        /// <returns>添加结果</returns>
        Task<WebResponseContent> AddCompositionProcess(CompositionProcess compositionProcess);

        /// <summary>
        /// 修改组成工序
        /// </summary>
        /// <param name="compositionProcess">组成工序实体</param>
        /// <returns>修改结果</returns>
        Task<WebResponseContent> UpdateCompositionProcess(CompositionProcess compositionProcess);

        /// <summary>
        /// 批量删除组成工序
        /// </summary>
        /// <param name="ids">组成工序ID数组</param>
        /// <returns>删除结果</returns>
        Task<WebResponseContent> BatchDeleteCompositionProcess(int[] ids);
    }
}
